# 多阶段构建 Dockerfile

# 1. 构建阶段
FROM ccr.ccs.tencentyun.com/chitu-dev/maven:3.8-openjdk-8 AS builder
# 设置工作目录
WORKDIR /app
# 单独复制 pom.xml 以便利用 Docker 的层缓存
COPY pom.xml .
# 复制 settings.xml
COPY settings.xml .
# 下载依赖
RUN mvn -s settings.xml dependency:go-offline
# 复制源代码
COPY src ./src
# 构建应用，跳过测试
RUN mvn -s settings.xml clean package -DskipTests

# 2. 运行阶段
FROM ccr.ccs.tencentyun.com/chitu-dev/openjdk:8-jdk-slim
# 设置工作目录
WORKDIR /app
# 从构建阶段复制 JAR 文件
COPY --from=builder /app/target/springboot-demo-0.0.1-SNAPSHOT.jar app.jar
# 暴露端口
EXPOSE 8080
# 设置容器启动命令
ENTRYPOINT ["java", "-jar", "app.jar"]
